package com.dem04;

/**
 * @program: fanxing
 * @description:
 * @author: 诸葛龙辰
 * @create: 2022-10-25 19:37
 **/
public class Test01 {
    public static void main(String[] args) {
        Info<Integer> info1=new Info<>();
        info1.setVar(15);
        //没有出现错误--因为Interger属于Number的子类
        fun(info1);

        Info<Number> info3=new Info<>();
        info3.setVar(25.5);
        fun(info3);

        Info<String> info2=new Info<>();
        info2.setVar("hello");
        //因为String不属于Number的子类。
//            fun(info2);


        Info<Object> info4=new Info<>();
        fun2(info4);



    }
    //设置对象泛型的上限 要求:范围为Number或者Number的子类类型
    public static void fun(Info<? extends Number> info){
        info.show();
    }
    //设置对象泛型的下限---泛型最低为String或者其父类
    public static void fun2(Info<? super String> info){
        info.show();
    }
}
class Info<T>{
    private T var;

    public void show(){
        System.out.println("var============"+var);
    }
    public T getVar() {
        return var;
    }

    public void setVar(T var) {
        this.var = var;
    }

}
